package com.example.sp01.controller;
import java.util.*;//导入java所有数据类型如List

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.example.sp01.entity.*;
import com.example.sp01.common.*;
import com.example.sp01.service.*;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.PageHelper;


import jakarta.annotation.Resource;//导入注解Resource
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;

@CrossOrigin//允许跨域访问，前端可以访问后端
@RestController
//表明是接口

//SB靠前端把这些url字段拼接调用接口
@RequestMapping("/Admin")
//大门钥匙
public class AdminController {
   //一个controller里面的方法，接口的入口，可以在这个接口上再加一个url：@return
   //也可以指定请求方式 GET POST PUT DELETE
    //@GetMapping("/hello")//第二把钥匙，有这个就要两把钥匙才能打开接口
    //@GetMapping//如果前面requestmapping已经指定了/user，所以这里就不用写了

    @Resource
    private adminService adminService;


    @GetMapping("/hello")
    public Result helloWorld(){
        return Result.success("hello world");
    }

    @GetMapping("/admins")
    public Result getAdmins(){
        //return new admin("12", "张三", "12@qq.com" ,1);//创建一个admin对象
        //返回是一个user对象，函数类型也要改为user，默认json格式
        //List<admin> list = adminService.getAdmins();//调用dao方法，返回一个user对象
        //return list;
        List<admin> list = adminService.getAdmins();//调用dao方法，返回一个user对象
        return Result.success(list);//返回一个包含成功响应信息的 Result 对象
         
    }

    @GetMapping("/search")
    public Result findBySerch(Params params){//@RequestParam注解用于获取请求参数的值，这里是获取name参数的值，默认是required=true，必须有name参数
        PageInfo<admin> info = adminService.findBySearch(params);
        return Result.success(info);
    }


    @PostMapping("/api/group/add")
    public Result addStu(@RequestBody admin groupDTO) throws Exception {
        //TODO: process POST request
        // System.out.println(groupDTO);
        int s=adminService.addStu(groupDTO);
        if(s==1){
            return Result.success();
        }else{ 
            return Result.error("添加失败");
        }
    }
    @PutMapping("/api/group/update")
    public Result editStu(@RequestBody admin groupDTO) throws Exception {
        //TODO: process PUT request
        // adminService.updateAdmin(groupDTO);
        // return ResponseEntity.ok().build();
        // System.out.println("进入controll");
        // System.out.println(groupDTO.getName());
        //ok
        
        adminService.updateStu(groupDTO);
        return Result.success();
    }
    

    //前端输入http://localhost:9099/user/admins即可访问
   
    
}
